The specification relates to computing matrix permutations in hardware.
Generally, a matrix permutation is a computation that rearranges the columns or rows of an input matrix. A matrix permutation may be computed by multiplying an input matrix M with a permutation matrix P. The permutation matrix P is a matrix having a single one in each row and column and zeros elsewhere. Thus, the permutation matrix P may be considered an identifying matrix, i.e., a matrix having one along the principal diagonal and zeros elsewhere, having its rows or columns rearranged. Applied to the matrix M, P*M produces an output matrix having the rows of matrix M interchanged according to the permutations specified by the permutation matrix P, and M*P produces an output matrix having the columns of matrix M interchanged according to the permutations specified by the permutation matrix P.